package com.nlx.notes.module.service;

import com.nlx.notes.module.bean.dto.FlowSaveDTO;
import com.nlx.notes.module.bean.dto.flow.UpdateDBAmountDTO;
import com.nlx.notes.module.bean.dto.querydb.FlowMonthQueryDbDTO;
import com.nlx.notes.module.entity.FlowMonthStatistics;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author nlx
 * @since 2024-12-15
 */
public interface IFlowMonthStatisticsService extends IService<FlowMonthStatistics> {

    /**
     * 通过月份查询数据
     * @param month 月份
     * @return FlowMonthStatistics
     */
    FlowMonthStatistics findByMonth(String month,Long bookId,Long userId);

    void saveMonthFlow(FlowSaveDTO flowSaveDTO);

    /**
     *
     * @param updateDBAmountDTO
     */
    void deleteFlow(UpdateDBAmountDTO updateDBAmountDTO);

    /**
     * 通过条件查询月份的数据
     * @param flowMonthQueryDbDTO 参数
     * @return FlowMonthStatistics
     */
    List<FlowMonthStatistics> findByCondition(FlowMonthQueryDbDTO flowMonthQueryDbDTO);

    /**
     * 统计最大收支的一个月
     * @param year 年份
     * @param type 收支类型
     * @param userId 用户id
     * @return Integer
     */
    FlowMonthStatistics findMaxAmountByYear(String year, String type,Long bookId, Long userId);
}
